Flash memory is a non-volatile computer storage chip that can be electrically erased and reprogrammed. NAND flash memory (also referred to as a “NAND memory device” or simply “NAND”) is a high density type of read-write memory that may be programmed and read in blocks or pages. NAND memory devices are used in memory cards, USB flash drives, solid-state drives, and similar products, for general storage and transfer of data, as well as to store configuration data in numerous digital devices including computing devices. A property of NAND is that all or part of the data image stored therein can be rewritten and thus updated. As used herein, the term “data image” refers to the information stored in one or more memory cells of a NAND.
NAND are typically organized into a number of blocks, with each block consisting of a number of pages. A “block” as it relates to flash memory, and particularly NAND, includes a sequence of storage bytes or bits, having a nominal length. That length is referred to as the block size. The process of storing data into blocks is normally accomplished a whole page at a time, while erasing data is done in units of blocks.
A data image stored on a NAND is commonly divided into multiple logical storage units, referred to as “partitions.” Partitions group together blocks that are associated to one another. The organization of the blocks and their associated partitions may be maintained by a partition table on the NAND, including pointers that map block addresses.
NAND memory device are often used to store two categories of data, namely static data and dynamic data. Static data is generally used to configure a computing device, such as to give it certain functionality that is stable, and thus static data is typically never or very rarely modified. Compiled code associated with boot loaders, core security, resource connectivity and power management are some examples of static data often stored in NAND memory devices. In contrast, dynamic data includes data that is typically changed frequently, such as application data, files and system operating data.
Over time, the data image stored in a NAND may degrade as the material state used to store data may changes due to thermal diffusion processes that can cause some data bits to be lost, which may result in a corrupted data image. To avoid loss of the data image, a NAND memory device must be periodically reprogrammed to refresh the data image.